Systems and methods for location-based content sharing

ABSTRACT

Systems and methods for location-based content sharing on a network are disclosed. The systems and methods disclosed are directed to sending and receiving various types of content items, including text, images, audio files, and video. Users may receive, evaluate, and further retransmit content items. A user may enter content item filters in order to limit the content items the user receives. A content item filter may include a location filter, a demographic filter, or any other type of filter that may be applied to content items. Demographic filters may include criteria such as age and gender. Location filters may include one or more receiving locations, which may be a point location or an area or a combination of one or more of these.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. utility patent applicationSer. No. 14/809,685, titled “Systems and Methods for Location-BasedContent Sharing,” filed Jul. 27, 2015, which is incorporated byreference herein in its entirety.

FIELD OF INVENTION

The present invention relates generally to location-based contentsharing systems and methods. More specifically, the present inventionrelates to systems that allow a user to receive content items accordingto location-based filters and further share content items the userevaluates.

BACKGROUND

In recent years, sharing content through web-based social media sitesand other applications has become increasingly popular. A number ofapplications have been developed to facilitate communications betweenlike-minded users wishing to share content in the form of text, images,video, and other formats.

In some of these applications, persons having similar interests andvalues may be matched with one another based upon user-entered criteria.However, a drawback of these applications is that, after sharingcontent, a user generally does not receive feedback from other users whoreviewed the content. It would therefore be desirable to provide amethod and system for sharing content that would display to the user theextent to which the user's shared content has received positive ornegative evaluations as well as location information about thoseevaluations.

Many existing applications, such as SNAPCHAT (available on the Apple AppStore, among other places), allow a user to send content items only toselected persons within the user's list of contacts, thereby limitingthe number of potential recipients. It would therefore be desirable toprovide a method and system allowing a user to share content withrecipients who are not in the user's pre-defined network of contacts.

Other applications directed toward profile matching, such as TINDER(available on the Apple App Store, among other places), allow each userin a network to view profiles shared by other users. Each user evaluatesother users' shared content (i.e. user profiles) by providing apreference indication. These preference indications are used to identifypotential matches between users. However, there is no furthertransmission of shared content by the recipient to other usersindicating the recipient's evaluation of the shared content. In otherwords, the application does not allow a recipient to share with otherusers the fact that the recipient liked an item of shared content. Itwould therefore be desirable to provide a method and system that allowsa recipient to retransmit to others the shared content of another user.

SUMMARY OF THE INVENTION

A location-based content sharing method and system is disclosed whichallows a user to receive content items according to location-basedfilters and further share content items the user evaluates.

In one embodiment, a computer-implemented method for sharing contentcomprises receiving a content item from a first user and associatingwith the content item a location of the first user. The method furthercomprises receiving a location filter of a second user and transmittingthe content item to the second user only if the location filter of thesecond user includes the location of the first user. The method alsocomprises receiving an evaluation of the content item from the seconduser and associating with the content item a location of the seconduser. The method further comprises receiving a location filter of athird user and transmitting the content item to the third user only ifthe evaluation is positive and the location filter of the third userincludes the location of the second user.

In another embodiment, the method further comprises associating with thecontent item a demographic characteristic of the first user, receiving ademographic filter of a second user, associating with the content item ademographic characteristic of the second user, and receiving ademographic filter of a third user. In this embodiment, transmitting thecontent item to the second user comprises transmitting the content itemonly if the demographic filter of the second user includes thedemographic characteristic of the first user. Additionally, in thisembodiment, transmitting the content item to the third user comprisestransmitting the content item only if the demographic filter of thethird user includes the demographic characteristic of the second user.Receiving a location filter of a second user may comprise receiving atleast one geographical area identified by a center and a radius.

In other embodiment, a computer-implemented method for sharing contentcomprises receiving a content item from a first user and associatingwith the content item a location of the first user. The method furthercomprises receiving a location filter of a second user and transmittingthe content item to the second user only if the location filter of thesecond user includes the location of the first user. The method alsocomprises receiving an evaluation of the content item from the seconduser and associating with the content item a location of the seconduser. The method further comprises adding the content item to aretransmission list only if the evaluation is positive, receiving alocation filter of a third user, and transmitting the content item tothe third user only if the content item is included in theretransmission list and the location filter of the third user includesthe location of the second user. Adding the content item to aretransmission list may comprise adding the content item to theretransmission list only if the retransmission list contains less than adefined number of retransmission list items.

In one embodiment, a non-transitory computer-readable medium comprisesinstructions that, when executed by a processor, are configured toreceive a content item from a first user and associate with the contentitem a location of the first user. The instructions are furtherconfigured to receive a location filter of a second user and transmitthe content item to the second user only if the location filter of thesecond user includes the location of the first user. The instructionsare further configured to receive an evaluation of the content item fromthe second user and associate with the content item a location of thesecond user. The instructions are also configured to receive a locationfilter of a third user and transmit the content item to the third useronly if the evaluation is positive and the location filter of the thirduser includes the location of the second user.

In another embodiment, the instructions are further configured toassociate with the content item a demographic characteristic of thefirst user, receive a demographic filter of a second user, associatewith the content item a demographic characteristic of the second user,and receive a demographic filter of a third user. In this embodiment,the instructions for transmitting the content item to the second userare further configured to transmit the content item only if thedemographic filter of the second user includes the demographiccharacteristic of the first user. Further, in this embodiment, theinstructions for transmitting the content item to the third user arefurther configured to transmit the content item only if the demographicfilter of the third user includes the demographic characteristic of thesecond user. The instructions configured to receive a location filter ofa second user may be configured to receive at least one geographicalarea identified by a center and a radius.

In one embodiment, a non-transitory computer-readable medium comprisesinstructions that, when executed by a processor, are configured toreceive a content item from a first user and associate with the contentitem a location of the first user. The instructions are furtherconfigured to receive a location filter of a second user and transmitthe content item to the second user only if the location filter of thesecond user includes the location of the first user. The instructionsare also configured to receive an evaluation of the content item fromthe second user, associate with the content item a location of thesecond user, and add the content item to a retransmission list only ifthe evaluation is positive. In addition, the instructions are configuredto receive a location filter of a third user and transmit the contentitem to the third user only if the content item is included in theretransmission list and the location filter of the third user includesthe location of the second user. The instructions configured to add thecontent item to a retransmission list may be configured to add thecontent item to the retransmission list only if the retransmission listcontains less than a defined number of retransmission list items.

In another embodiment, a computer system for sharing content comprises aprocessor and a computer-readable medium that includes computer programcode for receiving a content item from a first user and associating withthe content item a location of the first user. The medium furtherincludes code for receiving a location filter of a second user andtransmitting the content item to the second user only if the locationfilter of the second user includes the location of the first user. Themedium further includes code for receiving an evaluation of the contentitem from the second user and associating with the content item alocation of the second user. The medium also includes code for receivinga location filter of a third user and transmitting the content item tothe third user only if the evaluation is positive and the locationfilter of the third user includes the location of the second user.

In another embodiment, a computer system for sharing content comprisesfurther includes code for associating with the content item ademographic characteristic of the first user; receiving a demographicfilter of a second user, associating with the content item a demographiccharacteristic of the second user, and receiving a demographic filter ofa third user. In addition, the code for transmitting the content item tothe second user includes codes for transmitting the content item only ifthe demographic filter of the second user includes the demographiccharacteristic of the first user. Further, the code for transmitting thecontent item to the third user includes code for transmitting thecontent item only if the demographic filter of the third user includesthe demographic characteristic of the second user. Receiving a locationfilter of a second user may comprise receiving at least one geographicalarea identified by a center and a radius.

In another embodiment, a computer system for sharing content comprises aprocessor and a computer-readable medium that includes computer programcode for receiving a content item from a first user and associating withthe content item a location of the first user. The medium furtherincludes code for receiving a location filter of a second user andtransmitting the content item to the second user only if the locationfilter of the second user includes the location of the first user. Themedium also includes code for receiving an evaluation of the contentitem from the second user, associating with the content item a locationof the second user, and adding the content item to a retransmission listonly if the evaluation is positive. The medium also includes code forreceiving a location filter of a third user and transmitting the contentitem to the third user only if the content item is included in theretransmission list and the location filter of the third user includesthe location of the second user. The code for adding the content item toa retransmission list may include code for adding the content item tothe retransmission list only if the retransmission list contains lessthan a defined number of retransmission list items.

These and other aspects of the invention may be more clearly understoodby reference to the following detailed description of the invention andthe appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The preferred embodiments of the present invention are illustrated byway of example and not limited to the following figures.

FIG. 1 illustrates a content sharing system in which embodiments of thepresent invention may be implemented.

FIG. 2 illustrates an exemplary implementation of a host server system.

FIG. 3 illustrates an exemplary user device.

FIG. 4 illustrates an exemplary content item displayed on a user device.

FIG. 5 illustrates an exemplary content item filter displayed on a userdevice.

FIG. 6 illustrates an exemplary receiving location filter for use in acontent sharing application.

FIG. 7 illustrates an exemplary database table in a content itemdatabase for storing location and demographic information relating tocontent items.

FIG. 8 illustrates an exemplary database table relating to retransmittedcontent items.

FIG. 9 illustrates a content item being retransmitted from one user toanother.

FIG. 10 illustrates a content item being routed around a user who hasgiven a content item a negative evaluation.

FIG. 11 illustrates an exemplary table for implementing a retransmissionlist.

FIG. 12 is a flow diagram illustrating a method for sharing contentaccording to one embodiment of the present disclosure.

FIG. 13A is a flow diagram illustrating a method for sharing contentaccording to one embodiment of the present disclosure.

FIG. 13B is a flow diagram illustrating a method for sharing contentaccording to one embodiment of the present disclosure.

FIG. 14 illustrates an exemplary heat map showing a content item that istransmitted from an initial location to a plurality of differentlocations.

DETAILED DESCRIPTION OF THE INVENTION

Various embodiments and aspects of the invention will be described withreference to details discussed below, and the accompanying drawings willillustrate the various embodiments. The following description anddrawings are illustrative of the invention and are not to be construedas limiting the invention. Numerous specific details are described toprovide a thorough understanding of various embodiments of the presentinvention. However, in certain instances, well-known or conventionaldetails are not described in order to provide a concise discussion ofembodiments of the present inventions.

FIG. 1 illustrates a content sharing system 10 in which embodiments ofthe present invention may be implemented. A content sharing system 10includes a host server system 12 in communication via a network 11 witha plurality of user devices 13. The network may comprise any network(e.g., a telecommunications network in conjunction with the Internet)capable of supporting bidirectional communication between the hostserver system 12 and the plurality of user devices 13.

FIG. 2 illustrates an exemplary implementation of the host server system12. The host server system 12 includes one or more processor modules 20in communication with one or more memory modules 21. The memory modules21 may include code executable by the processor modules 20 to implementthe content sharing described herein. The host server system 12 includesa central data store 23 containing information relating to users of theuser devices 13. The exchange of information between the central datastore 23 and the user devices 13 is facilitated by one or more networkinterfaces 22 in communication with user devices 13 on network 11.System operators may interact with the host server system 12 using userinterfaces 24 or remotely via network interfaces 22. The central datastore 23 may be implemented as one or more data stores or databases 25spread across one or more servers.

As shown, at least one database 25 may be accessed by the processormodules 20. It will be appreciated that the database may be accessed bythe server over a network or via another wired or wireless connection.The server may store desired or required information in the database andmay access the same to retrieve the information.

The database 25 may include a number of tables. Exemplary tables includebut are not limited to content item table 71, shown in FIG. 7, andretransmission list table 110, show in FIG. 11.

A database 25 may be in communication with an object relational mapping(“ORM”) also known as an object relational model or object-relationaldatabase management system. It will be appreciated that the ORM may beaccessed by processor modules 20 over the network 11 or via physicalconnection.

The ORM may be in communication with one or more of the following: aUniversal Resource Indicator (URI) mapper and a Rest API generator.First, the URI mapper may map a URI into a pointer to an internalprogram, view, logic, or presentation of data within the system, basedon one or more rules of a matching object specified in a collection ofmapping objects. The matching object may be a regular expression. TheURI mapper may be in communication with a web server

The Rest API generator may be in communication with a web server as tosend and/or receive data to/from user devices 13 communicating with theserver using HTTP and/or HTTPS. The Rest API generator may prepare datastored in the database 25 for delivery to a client device or may preparedata received from a client device for storage in the database. The RestAPI may be capable of translating between formats including, but notlimited to JSON, XML, CSV, and the like. The Rest API may be capable ofautomatically generating URIs based upon data structures observed in theORM for access by client devices.

A web server may be adapted to deliver web pages on request to usersusing the Hypertext Transfer Protocol (HTTP and/or HTTPS) or similarprotocols. This allows for delivery of HTML documents and any additionalcontent that may be included by a document, such as images, style sheetsand scripts.

A user device 13 may employ a web browser or similar client applicationto engage in communication with a web server. For example, a clientapplication may make a request for a specific resource using HTTP/HTTPSand the web server may respond with the content of that resource or anerror message if unable to do so. The resource may be data or a filestored in a database 25. The web server can receive content from a user,possibly using HTTP/HTTPS.

In certain embodiments, a user may access the host server system 12(i.e., an application running on the server) through a user device 13connected to a network 11. A user device 13 may be any device capable ofaccessing the server such as by running a client application or othersoftware, like a web browser or web-browser-like application. In oneembodiment, a user device 13 may comprise, for example, an input/outputdevice, a display, a processor, memory, and/or audio equipment such thatthe user may utilize the user device to create and/or edit documentsusing the word processor. Exemplary user devices include, but are notlimited to, general purpose computers, laptops, cell phones, smartphones, personal digital assistants, televisions, tablets, and the like.Once an access device establishes a connection to the host server system12, such as through the network 11, the user may log into the system toaccess a content sharing program.

FIG. 3 illustrates an exemplary user device 13. User device 13 includesone or more processor modules 31 in communication via a system bus withone or more memory modules 33. The memory module 33 contains data aswell as program code for a content sharing application 34 executable bythe processor module 31. Execution by the processor module 31 resultsin, for example, generation of user interface screens facilitating thecontent sharing described herein. The exemplary user device 13 isconfigured to send information to, and receive information from, thenetwork 11 via a network interface module 32. In embodiments in whichthe user device 13 comprises a wireless device, the network interfacemodule 32 may include, for example, a wireless transceiver capable ofcommunicating with devices on network 11. The processor module 31 mayalso communicate with camera module 37 and a SIM/user-associated module35. Users may interact with the client device 13 via one or more userinput interfaces 36 and a display module 38.

An exemplary content sharing application 34 may comprise HTML data,images, icons, and/or executable code. The executable code may becomposed in JavaScript, ECMAscript, CoffeeScript, Python, Ruby or otherprogramming languages suitable for execution within the content sharingapplication 34, or translation into a client application executableform.

The content sharing application 34 is typically adapted to presentvarious user interfaces to a user. Such user interfaces may be based oninformation sent by the content sharing system, and may allow the userto send and receive data. The content sharing application 34 may allowthe user to create and/or manipulate content items, filters,preferences, etc. via various user interfaces, and to communicate thesame to the host server system 12.

It will be apparent to one of ordinary skill in the art that, in certainembodiments, any of the functionality of the user device 13 may beincorporated into the host server system 12, and vice versa. Likewise,any functionality of a content sharing application 34 may beincorporated into a browser-based client, and such embodiments areintended to be fully within the scope of the invention. For example, abrowser-based content sharing application could be configured foroffline work by adding local storage capability, and a nativeapplication could be distributed for various native platforms via asoftware layer that executes the browser-based program on the nativeplatform.

In one embodiment, communication between a content sharing applicationand a content sharing program may involve the use of a translationand/or serialization module. A serialization module can convert anobject from an in-memory representation to a serialized representationsuitable for transmission via HTTP or another transport mechanism. Forexample, the serialization module may convert data from a native Python,Ruby, or Java in-memory representation into a JSON string forcommunication over the client-to-server transport protocol.

Similarly, communications of data between the user device 13 and thehost server system 12 may be continuous and automatic, or may beuser-triggered. For example, the user may click a button, causing theclient to send data to the host server system 12. Alternately, a contentsharing application 34 may automatically send updates to the host serversystem 12 periodically without prompting by a user. If a user device 13sends data autonomously, the host server system 12 may be configured totransmit this data, either automatically or on request, to additionaluser devices 13, thereby enabling multi-user online concurrent editingof the same document.

The server may be capable of communicating user-populated and/orautomatically-populated database table entries to third party systems,and may notify users of such communications.

It will be recognized that any other suitable software or hardware orcombinations thereof may be used with the exemplary content sharingsystems and applications disclosed herein. Moreover, such applicationsmay be implemented at any suitable location in FIG. 1, such as but notlimited to at the host server system 12, at the user device 13, or at alocation not pictured.

Unless specifically stated otherwise, as apparent from the followingdiscussion, it is appreciated that throughout the description,discussions utilizing terms such as “processing” or “computing” or“calculating” or “determining” or “displaying” or the like, can refer tothe action and processes of a data processing system, or similarelectronic device, that manipulates and transforms data represented asphysical (electronic) quantities within the system's registers andmemories into other data similarly represented as physical quantitieswithin the system's memories or registers or other such informationstorage, transmission or display devices.

Generally, the systems and methods disclosed herein can be implementedby hardware, software, firmware, middleware, microcode, or anycombination thereof, or is implemented on a cloud-based or visualizednetwork system. In one embodiment, the techniques disclosed herein maybe implemented in software such as an operating system or in anapplication running on an operation system. In another embodiment, thesystem may be integrated into a mobile application that allows users tointeract with a content sharing system via a mobile application. Whenimplemented in software, firmware, middleware, or microcode, the programcode or code segments to perform the necessary tasks may be stored in amachine-readable medium such as a storage medium or other storage(s). Aprocessor may perform the necessary tasks. A code segment may representa procedure, a function, a subprogram, a program, a routine, asubroutine, a module, a software package, a class, or any combination ofinstructions, data structures, or program statements. A code segment maybe coupled to another code segment or a hardware circuit by passingand/or receiving information, data, arguments, parameter, or memorycontents. Information, arguments, parameters, data, etc. may be passed,forwarded, or transmitted through any suitable means including memorysharing, message passing, token passing, network transmission, etc.

The exemplary embodiments can relate to an apparatus for performing oneor more of the functions described herein. This apparatus may bespecially constructed for the required purposes, or it may comprise ageneral purpose computer selectively activated or reconfigured by acomputer program stored in the computer. Such a computer program may bestored in a machine (e.g. computer) readable storage medium, such as,but is not limited to, any type of disk including optical disks, CD-ROMsand magnetic-optical disks, read only memories (ROMs), random accessmemories (RAMs) erasable programmable ROMs (EPROMs), electricallyerasable programmable ROMs (EEPROMs), magnetic or optical cards, or anytype of media suitable for storing electronic instructions, and eachcoupled to a flash memory device, such as a compact flash card or USBflash drive.

Some exemplary embodiments described herein are described as softwareexecuted on at least one computer, though it is understood thatembodiments can be configured in other ways and retain functionality.The embodiments can be implemented on known devices such as a server, apersonal computer, a special purpose computer, a programmedmicroprocessor or microcontroller and peripheral integrated circuitelement(s), and ASIC or other integrated circuit, a digital signalprocessor, a hard-wired electronic or logic circuit such as a discreteelement circuit, or the like. In general, any device capable ofimplementing the processes described herein can be used to implement thesystems and techniques according to this invention.

It is to be appreciated that the various components of the technologycan be located at distant portions of a distributed network and/or theInternet, or within a dedicated secure, unsecured and/or encryptedsystem. Thus, it should be appreciated that the components of the systemcan be combined into one or more devices or co-located on a particularnode of a distributed network, such as a telecommunications network. Aswill be appreciated from the description, and for reasons ofcomputational efficiency, the components of the system can be arrangedat any location within a distributed network without affecting theoperation of the system. Moreover, the components could be embedded in adedicated machine.

Furthermore, it should be appreciated that the various links connectingthe elements can be wired or wireless links, or any combination thereof,or any other known or later developed element(s) that is capable ofsupplying and/or communicating data to and from the connected elements.The terms determine, calculate and compute, and variations thereof, asused herein are used interchangeably and include any type ofmethodology, process, mathematical operation or technique.

The invention described and claimed herein is not to be limited in scopeby the specific embodiments herein disclosed since these embodiments areintended as illustrations of several aspects of the invention. Anyequivalent embodiments are intended to be within the scope of thisinvention. Indeed, various modifications of the invention in addition tothose shown and described herein will become apparent to those skilledin the art from the foregoing description. Such modifications are alsointended to fall within the scope of the appended claims. Allpublications cited herein are incorporated by reference in theirentirety.

It will be apparent to one of ordinary skill in the art that theexamples provided herein involving specific programming languages,scripting languages, data formats, specific software or programs, andother details are exemplary and that variations on any of these detailsare aspects of and are intended to be within the scope of the presentinvention. For example, although a content sharing program may bedescribed herein as being separate from a communication program, it willbe appreciated that a single program may include the functionality ofboth programs.

Content Items

A content item may comprise one or more content elements. A contentelement may be a text element, an audio element, a photograph, a video,or any other type of data. FIG. 4 illustrates an exemplary content item40 displayed on a user device 13 within content sharing application 34.The content item 40 comprises content elements 41. In this exemplaryembodiment, content item 41 a is a photograph of a basketball playersuccessfully making a jump shot and content element 41 b is a textcomment stating “Way to go, Spartans!”

Content items may be composed of content elements created using a userdevice 13 or content elements gathered from other sources or acombination of these. For example, a content item may comprise aphotograph taken with the user device 13 and/or a song downloaded fromthe Internet.

Uploading Content Items

A user may send content items to other users by uploading content itemsto the host server system 12. A sending user may upload a content item40 onto the host server system 12 using a user device 13 and a contentsharing application 34. As described above, the user device 13 may be amobile phone, a laptop, a desktop computer, or any other device capableof transmitting data to the host server system 12. The content sharingapplication 34 is software installed on the user device 13 that, amongother things, allows the user to send and receive content items.

The system associates the content item with a content item location. Acontent item location may be a point or an area or a combination of oneor more of these. For example, a content item location may be GPScoordinates, an area defined by a center point and a radius, a rectangledefined by four GPS coordinates, a predefined area corresponding to apolitical designation (e.g. “the city of New Orleans”), or any othertype of location designation. When a content item location is definedusing a center point and a radius, the center may be the sending user'scurrent location in GPS coordinates, another location in GPScoordinates, a city center, or any other type of data capable ofdefining a center point. The radius may be a distance measured in unitsfor measuring distance (e.g., miles, kilometers, feet, or meters) or maybe a relative distance designation (e.g., “nearby”, “within city”,“within state”, etc.).

In one embodiment, prior to transmitting the content item to the hostsystem server 12, the content sharing application 34 tags the contentitem with a content item location that is the user's physical location(in GPS coordinates). In other embodiments, the host system server 12,rather than the content sharing application 34, tags the content itemwith a content item location.

The content item location may be a location other than a user's physicallocation and may be associated with a content item at any time. Forexample, the host system server 12 may associate with the content iteman uploading user's static home address, a location entered by the userat the time the content item was created, or any other address.

Receiving Content Items

In addition to uploading content items, a user may receive contentitems. In other words, a single user may be both a sending user (sender)and receiving user (receiver). A receiving user may create a contentitem filter by entering filter criteria that determine the content itemsthe user will receive. The content item filter may include a locationfilter, a demographic filter, or any other type of filter that may beapplied to content items. A demographic filter may include criteria suchas age and gender.

FIG. 5 illustrates an exemplary content item filter 50 displayed on auser device 13 within content sharing application 34. The content itemfilter 50 comprises location filters 51 and demographic filters 52. Inthis exemplary embodiment, the location filter 51 a filters out contentitems that have a content item location more than 3 miles from locationsthat are selected using the location filter 51 b. In this embodiment,the location filter 51 b is implemented as an input button that opensthe data entry screen depicted in FIG. 6. The demographic filter 52 afilters out content items transmitted by users who are not within 22-25years of age. The demographic filter 52 b filters out content itemstransmitted by users who are not women.

A location filter may include one or more receiving locations. Areceiving location may be a point or an area or a combination of one ormore of these. For example, a receiving location may be GPS coordinates,an area defined by a center point and a radius, a rectangle defined byfour GPS coordinates, a predefined area corresponding to a politicaldesignation, or any other type of location designation. When a receivinglocation is defined using a center point and a radius, the center may bethe receiving user's current location in GPS coordinates, anotherlocation in GPS coordinates, a city center, or any other type of datacapable of defining a center point. The radius may be a distancemeasured in units for measuring distance (e.g., miles, kilometers, feet,or meters) or may be a relative distance designation (e.g., “nearby”,“within city”, “within state”, etc.)

FIG. 6 illustrates an exemplary receiving location filter 60 for use inthe content sharing application 34. A receiving user may selectlocations from which to receive content items by tapping an “Add New”button 63. The user may select the user's current location 61 and/orother designated locations 62. In this exemplary embodiment, the userhas selected his current location 61, which is Madison, Wis., and hasselected Ann Arbor, Mich. (62 a), New Orleans, La. (62 b), and StateCollege, Pa. (62 c) as additional designated locations 62.

FIG. 7 illustrates an exemplary database table 71 in content itemdatabase 25 for storing location and demographic information relating tocontent items 40 which are stored in a central data store 23. It will beappreciated by those skilled in the art that the database table may alsobe implemented as multiple tables in a relational database system. Inthis exemplary embodiment, content item 40 a is a photograph stored asan MPEG file, content item 40 b is an audio file stored as an MP3 file,content item 40 c is a text item stored as a database record, andcontent item 40 d is a video stored as an MP4 file. Database table 71comprises column 72 for storing content item unique IDs, column 73 forstoring unique User IDs, column 74 for storing content item latitude,column 75 for storing content item longitude, column 76 for storing thegender of the user who sent the content item, and column 77 for storingthe age of the user who sent the content item. Rows 78 a, 78 b, 78 c,and 78 d contain information relating to content items 40 a, 40 b, 40 c,and 40 d, respectively. Row 78 a (content item ID=1), which correspondsto photograph 40 a, is a data record containing latitude and longitudevalues corresponding to a location in New Orleans, La., a gender valueof “female,” and an age value of 23 years of age. Row 78 b (content itemID=2), which corresponds to audio file 40 b, is a data record containinglatitude and longitude values corresponding to a location in NewOrleans, La., a gender value of “male,” and an age value of 23 years ofage. Row 78 c (content item ID=3), which corresponds to text item 40 c,is a data record containing latitude and longitude values correspondingto a location in New Orleans, La., a gender value of “female,” and anage value of 29 years of age. Row 78 d (content item ID=4), whichcorresponds to video file 40 d, is a data record containing latitude andlongitude values corresponding to a location in Los Angeles, Calif., agender value of “female,” and an age value of 25 years of age.

Application of Filters

Based on the exemplary content item filter depicted in FIG. 5 and FIG.6, which is set to receive content items sent by women between the agesof 22 and 25 who are within 3 miles of Madison, Wis., Ann Arbor, Mich.,New Orleans, La., and State College, Pa., only content itemscorresponding to row 78 a will be transmitted to the receiving user whocreated the content item filter. Row 78 a will be transmitted becausethe content item latitude and longitude matches New Orleans, La. (whichis, by definition, within 3 miles of New Orleans), the gender matches“female”, and an age of 23 is between 22 and 25 years of age. Row 78 bwill be filtered out because the value of “male” does not match thefilter criterion of “female”. Row 78 c will be filtered out because theage value of 29 is not between 22 and 25 years of age. Row 78 d will befiltered out because the content item location corresponds to LosAngeles, Calif., which is not within 3 miles of the four citiesidentified in the receiving location filter 60.

Evaluation

In an exemplary embodiment, in order to receive additional contentitems, the receiving user must first evaluate the current content item.In other words, the receiving user advances through content items byproviding an evaluation for the most recent content item transmitted tothe receiving user. Once a content item has been evaluated, anothercontent item will become available (provided that additional contentitems match the receiving user's filter criteria).

Referring again to FIG. 4, an exemplary embodiment illustrates inputbuttons for entering an evaluation of a content item 40. Input button 42a is a “Dislike” button, which the receiving user can tap to give thecontent item a negative evaluation. Input button 42 b is a “Like”button, which the receiving user can tap to give the content item apositive evaluation. It will be appreciated by those skilled in the artthat positive evaluations may be entered in various ways, including byswiping left or right or up or down, or by scrolling to the next contentitem, or by not giving the content item a negative evaluation (thusimplying a positive evaluation).

In one embodiment, once a receiving user has given a content item anegative evaluation, it is no longer viewable on the receiving user'suser device 340.

Retransmission

In one embodiment, if the receiving user gives a content item a positiveevaluation, the content item may be retransmitted. In an exemplaryembodiment, a content item may become eligible for retransmission whenthe host server system 12 creates a new record in a content itemdatabase table based on a receiving user's positive evaluation of thecontent item.

FIG. 8 illustrates exemplary database table 71 that contains a record 80corresponding to a retransmitted content item. Assuming that thereceiving user (User E) who set the content filters depicted in FIG. 5and FIG. 6 was a male, aged 25, and located in Madison, Wis., and alsoassuming that he received a content item corresponding to row 78 a andgave it a positive evaluation, the host server system 12 may make thecontent item eligible for retransmission by creating row 80 in exemplarydatabase table 71. Row 80 contains a value of 1 in Content Item IDcolumn 72, which is equal to the value in row 78 a, indicating that bothrows are associated with the same content item, i.e., photograph 40 a.Column 73 of Row 80 contains the receiving user's unique User ID, whichis “E”. Row 80 contains the receiving user's location information incontent item latitude column 74 and content item longitude column 75;the values correspond to Madison, Wis., where the receiving user islocated. Row 80 contains a value of “Male” in the “Sending User Gender”column 76 because the receiving user is “male”. When the content item isretransmitted, the receiving user will become the “sender”; therefore,it is appropriate that his gender appear in the column labeled “SendingUser Gender”. Likewise, Row 80 contains a value of 25 in the “SendingUser Age” column 77, which is equal to the receiving user's age. In thisembodiment, the content item will be retransmitted if the record 80matches another user's content item filter.

In some embodiments, the host server system 12 may not retransmit acontent item if the date associated with the content item record is morethan a defined amount of time in the past, e.g., a content item that wascreated or last transmitted more than two weeks ago may not betransmitted to users.

Content items may be retransmitted more than once, resulting in a chainof retransmitted content items. FIG. 9 illustrates a content item beingretransmitted from one user to another. The retransmissions depicted inthis figure assume that the receiving user's demographic filtercriteria, if any, are satisfied. The following retransmissions occur:

-   -   Receiving User A receives content item 40 and gives it a        positive evaluation. Receiving User B has set location filter        criteria resulting in a receiving radius 91 b. Because User A's        location falls within radius 91 b, content item 40 will be        transmitted to User B.    -   Receiving User B receives content item 40 and gives it a        positive evaluation. Receiving User C has set location filter        criteria resulting in a receiving radius 91 c. Because User B's        location falls within radius 91 c, content item 40 will be        transmitted to User C.    -   Receiving User C receives content item 40 and gives it a        positive evaluation. Receiving User D has set location filter        criteria resulting in a receiving radius 91 d. Because User C's        location falls within radius 91 d, content item 40 will be        transmitted to User D.    -   Receiving User D receives content item 40 and gives it a        positive evaluation. Receiving User E has set location filter        criteria resulting in a receiving radius 91 e. Because User D's        location falls within radius 91 e, content item 40 will be        transmitted to User E.    -   Receiving User E receives content item 40 and gives it a        negative evaluation. Retransmission ends with respect to User E.

In one embodiment, a content item may be retransmitted in such a waythat it is routed around a receiving user who gives it a negativeevaluation, so long as additional receiving users are relatively nearbyand give the content item a positive evaluation.

FIG. 10 illustrates a content item being routed around User E, who hasgiven the content item a negative evaluation. User H receives thecontent item even though transmission from User E to User H did notoccur due to User E's negative evaluation of the content item. Instead,the content item is transmitted in a chain from User D to User F to UserG to User H. In FIG. 10, the retransmissions described above withrespect to FIG. 9 occur with respect to Users A-E. Again, theretransmissions depicted in this figure assume that the receiving user'sdemographic filter criteria, if any, are satisfied. The followingadditional retransmissions occur:

-   -   Receiving User D receives content item 40 and gives it a        positive evaluation. Receiving User F has set location filter        criteria resulting in a receiving radius 101 f. Because User D's        location falls within radius 101 f, content item 40 will be        transmitted to User F.    -   Receiving User F receives content item 40 and gives it a        positive evaluation. Receiving User G has set location filter        criteria resulting in a receiving radius 101 g. Because User F's        location falls within radius 101 g, content item 40 will be        transmitted to User G.    -   Receiving User G receives content item 40 and gives it a        positive evaluation. Receiving User H has set location filter        criteria resulting in a receiving radius 101 h. Because User G's        location falls within radius 101 h, content item 40 will be        transmitted to User H.    -   Receiving User H receives content item 40 and gives it a        negative evaluation. Retransmission ends with respect to User H.

In one embodiment, the data representing the content item remains in afixed format as the content item is retransmitted, e.g. a single file ina data store represents the content item and multiple content itemdatabase records (representing retransmissions of the content item)point to the single file. In other embodiments, the content item may bemodified from its original state as it is retransmitted, e.g. thecontent item itself may be copied into multiple files corresponding tomultiple users in the retransmission chain.

Retransmission List

In one embodiment, a retransmission list limits the number of contentitems a user may retransmit at any one time. For example, thetransmission list may allow a user to retransmit only 20 content itemsat one time. The retransmission list may be based on several factors,including the most recent content items the user has evaluatedpositively, content items the user has marked as “favorites,” contentitems the user has marked specifically “for transmission,” and so forth.

FIG. 11 illustrates an exemplary table 110 for implementing aretransmission list. User ID column 111 contains unique User IDs foreach user and Content Item ID column 112 contains unique Content ItemIDs. Row 113 a contains a record indicating that the content item withContent Item ID=1 is included in User A's retransmission list. Rows 113b, 113 c, 113 d, and 113 e indicate that content items with Content ItemIDs=16, 25, 26, and 27, respectively, are on User A's retransmissionlist. Rows 113 f, 113 g, 113 h, 113 i, and 113 j indicate that contentitems with Content Item IDs=1, 7, 9, 22 and 27, respectively, are onUser E's retransmission list. In an exemplary embodiment, table 71,shown in FIG. 7 and FIG. 8, is joined with table 110, shown in FIG. 11,in order to determine whether content items will be retransmitted. Onlyrows in table 71 that have corresponding rows in table 110 (joined usingthe “User ID” and “Content Item ID” columns in both tables) will beretransmitted. One skilled in the art will recognize that theretransmission list can be implemented in a number of ways, includingmultiple tables in a relational database, a single “Yes/No” column,counters implemented in code, etc.

Process Flow

FIG. 12 is a flow diagram illustrating a method for sharing contentaccording to one embodiment of the present disclosure. At step 1210, ahost server system 12 receives a content item from a first user. At step1215, the host server system 12 associates with the content item alocation of the first user. At step 1220, the host server system 12receives a location filter of a second user. At step 1225, the hostserver system 12 determines whether the location filter of the seconduser includes the location of the first user. At step 1235, if thelocation filter of the second user includes the location of the firstuser, the host server system 12 transmits the content item to the seconduser. At step 1230, if the location filter of the second user does notencompass the location of the first user, host server system 12 does nottransmit the content item to the second user. At step 1245, the contentitem having been transmitted to the second user, the host server system12 receives an evaluation of the content item from the second user. Atstep 1245, the host server system 12 associates with the content item alocation of a second user. At step 1250, the host server system 12receives a location filter of a third user. At step 1255, the hostserver system 12 determines whether the evaluation of the second user ispositive. At step 1260, if the evaluation from the second user is notpositive, the content item is not transmitted to the third user. At step1265, the host server also determines whether the location filter of thethird user includes the location of the second user. At step 1270, ifthe evaluation of the second user is positive and the location filter ofthe third user includes the location of the second user, the host serversystem 12 transmits the content item to the third user.

FIGS. 13A and 13B are flow diagrams illustrating a method for sharingcontent according to another embodiment of the present disclosure. Withreference to FIG. 13A, at step 1310, a host server system 12 receives acontent item from a first user. At step 1315, the host server system 12associates with the content item a location and a demographiccharacteristic of the first user. At step 1320, the host server system12 receives a location filter and a demographic filter of a second user.At step 1325, the host server system 12 determines whether the locationfilter of the second user includes the location of the first user. Ifthe filter includes the location, the process proceeds to step 1335; ifthe filter does not include the location, the process proceeds to step1330. At step 1335, the host server system 12 determines whether thedemographic filter of the second user includes the demographiccharacteristic of the first user. If the filter includes the demographiccharacteristic, the process proceeds to step 1340; if the filter doesnot include the demographic characteristic, the process proceeds to step1330. At step 1330, the host server system 12 does not transmit thecontent item to the second user. At step 1340, the host server system 12transmits the content item to the second user. The process the continuesin FIG. 13B. At step 1345, the host server system 12 receives anevaluation of a content item from a second user. At step 1350, the hostserver system 12 associates a location and a demographic characteristicof a second user with the content item. At step 1355, the host serversystem 12 receives a location filter and demographic filter of a thirduser. At step 1360, the host server system 12 determines whether theevaluation from the second user was positive. If the evaluation ispositive, the process proceeds to step 1365; if the evaluation was notpositive, the process proceeds to step 1375. At step 1365, the hostserver system 12 determines whether the location filter of the thirduser includes the location of the second user. If the filter includesthe location, the process proceeds to step 1370; if the filter does notinclude the location, the process proceeds to step 1375. At step 1370,the host server system 12 determines whether the demographic filter ofthe third user includes demographic characteristic of the second user.If the filter includes the demographic characteristic, the processproceeds to step 1380; if the filter does not include the demographiccharacteristic, the process proceed to step 1375. At step 1375, the hostserver system 12 does not transmit the content item to the third user.At step 1380, the host server system 12 transmits the content item tothe third user.

Graphical tools within the content sharing application 34 may allowusers to view the geographical spread of content items, i.e. theapplication may visually represent the transmission of content itemsfrom one location to another. FIG. 14 illustrates an exemplary heat map140 showing a content item that is transmitted initially from a location141 in Ann Arbor, Mich. The content item is transmitted to variouslocations in the state of Michigan, including a location 142 a to theeast of Ann Arbor, a location 142 b to the west of Ann Arbor, and alocation 142 c in the upper peninsula of Michigan. Graphical tools mayshow the transmission of content items in real time as users receive andretransmit them or as part of periodically updated maps. Further, thetools may indicate the degree to which a content item has beentransmitted within portions of a geographical area. For example, a heatmap may identify regions with heavy retransmission of a particularcontent item using a red overlay, regions with light retransmissionusing a light blue overlay, regions with no transmission using atransparent overlay or no overlay, and regions with intermediatetransmission using appropriate intermediate colors.

What is claimed is:
 1. A computer-implemented method for sharing contentcomprising: receiving a content item from a first user; associating afirst demographic characteristic of the first user with the contentitem; receiving a first demographic filter from a second user;transmitting the content item to the second user, based on adetermination that the first demographic filter includes the firstdemographic characteristic; associating a second demographiccharacteristic of the second user with the content item, wherein thesecond demographic characteristic is different than the firstdemographic characteristic; receiving an evaluation of the content itemfrom the second user; receiving a second demographic filter from a thirduser, wherein the second demographic filter does not include the firstdemographic characteristic; and transmitting the content item to thethird user, based on a determination that the second demographic filterincludes the second demographic characteristic and that the evaluationis positive.
 2. A method according to claim 1, further comprising:associating a first location with the content item, wherein the firstlocation is at least one of a location of the first user and a locationdesignated by the first user; and receiving a first location filter fromthe second user, and wherein the transmitting the content item to thesecond user is further based on a determination that the first locationfilter includes the first location.
 3. A method according to claim 2,further comprising: associating a second location with the content item,wherein the second location is at least one of a location of the seconduser and a location designated by the second user; and receiving asecond location filter from the third user, and wherein the transmittingthe content item to the third user is further based on a determinationthat the second location filter includes the second location.
 4. Amethod according to claim 3, wherein the second location filter does notinclude the first location.
 5. A method according to claim 4, wherein:the first location filter comprises a first geographical area identifiedby a center and a radius, and the first location is within the firstgeographical area.
 6. A method according to claim 5, wherein: the secondlocation filter comprises a second geographical area identified by acenter and a radius, the first location is not within the secondgeographical area, and the second location is within the secondgeographical area.
 7. A method according to claim 6, wherein the firstgeographical area and the second geographical area overlap.
 8. A methodaccording to claim 1, further comprising: receiving, from the seconduser, an evaluation of the content item; and adding the content item toa retransmission list, based on a determination that the evaluation ispositive, and wherein the transmitting the content item to the thirduser is further based on the content item being added to theretransmission list.
 9. A method according to claim 1, wherein each ofthe first and second demographic characteristics is selected from thegroup consisting of age and gender.
 10. A system comprising one or morecomputers and one or more storage devices storing instructions that whenexecuted by the one or more computers cause the one or more computers toperform operations comprising: receiving a content item from a firstuser; associating a first demographic characteristic of the first userwith the content item; receiving a first demographic filter from asecond user; transmitting the content item to the second user, based ona determination that the first demographic filter includes the firstdemographic characteristic; associating a second demographiccharacteristic of the second user with the content item, wherein thesecond demographic characteristic is different than the firstdemographic characteristic; receiving an evaluation of the content itemfrom the second user; receiving a second demographic filter from a thirduser, wherein the second demographic filter does not include the firstdemographic characteristic; and transmitting the content item to thethird user, based on a determination that the second demographic filterincludes the second demographic characteristic and that the evaluationis positive.
 11. A system according to claim 10, wherein the operationsfurther comprise: associating a first location with the content item,wherein the first location is at least one of a location of the firstuser and a location designated by the first user; and receiving a firstlocation filter from the second user, and wherein the transmitting thecontent item to the second user is further based on a determination thatthe first location filter includes the first location.
 12. A systemaccording to claim 11, wherein the operations further comprise:associating a second location with the content item, wherein the secondlocation is at least one of a location of the second user and a locationdesignated by the second user; and receiving a second location filterfrom the third user, and wherein the transmitting the content item tothe third user is further based on a determination that the secondlocation filter includes the second location.
 13. A system according toclaim 12, wherein: the first location filter comprises a firstgeographical area identified by a center and a radius, and the firstlocation is within the first geographical area.
 14. A system accordingto claim 13, wherein: the second location filter comprises a secondgeographical area identified by a center and a radius, the firstlocation is not within the second geographical area, and the secondlocation is within the second geographical area.
 15. A system accordingto claim 10, wherein the operations further comprise: adding the contentitem to a retransmission list, based on the determination that theevaluation is positive, and wherein the transmitting the content item tothe third user is further based on the content item being added to theretransmission list.
 16. A system according to claim 10, wherein theoperations further comprise: receiving, from the third user, anevaluation of the content item; associating a third demographiccharacteristic of the third user with the content item; receiving, froma fourth user, a third demographic filter, wherein the third demographicfilter includes the third demographic characteristic; and determiningthat the content item should not be transmitted to the fourth user,based on a determination that the evaluation is negative.
 17. A computerprogram product encoded on one or more non-transitory computer storagemedia, the computer program product comprising instructions that whenexecuted by one or more computers cause the one or more computers toperform operations comprising: receiving a content item from a firstuser; associating a first demographic characteristic of the first userwith the content item; receiving a first demographic filter from asecond user; transmitting the content item to the second user, based ona determination that the first demographic filter includes the firstdemographic characteristic; associating a second demographiccharacteristic of the second user with the content item, wherein thesecond demographic characteristic is different than the firstdemographic characteristic; receiving an evaluation of the content itemfrom the second user; receiving a second demographic filter from a thirduser, wherein the second demographic filter does not include the firstdemographic characteristic; and transmitting the content item to thethird user, based on a determination that the second demographic filterincludes the second demographic characteristic and that the evaluationis positive.
 18. A computer program product according to claim 17,wherein the operations further comprise: associating a first locationwith the content item, wherein the first location is at least one of alocation of the first user and a location designated by the first user;and receiving a first location filter from the second user; associatinga second location with the content item, wherein the second location isat least one of a location of the second user and a location designatedby the second user; and receiving a second location filter from thethird user, wherein the transmitting the content item to the second useris further based on a determination that the first location filterincludes the first location, and wherein the transmitting the contentitem to the third user is further based on a determination that thesecond location filter includes the second location.